package sige

import java.text.DateFormat
import java.text.SimpleDateFormat

class AnoLetivo {

    
    static constraints = {
        //ano unique: true
        semestre_1 nullable:true
        semestre_2 nullable:true
    }
    
    static hasMany = [
        turmas : Turma
    ]
    
    Semestre semestre_1
    Semestre semestre_2
    int ano = calculaAno()
    Date dataDeInicio
    Date dataDeFechamento
    
    private def calculaAno(){
        def c = Calendar.instance
        c.time = new Date()
        c[Calendar.YEAR]
    }
    
    String toString(){
        "$ano"
    }
    
    static Date StringForDate(String data){
        println("data de string "+data)
        DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date date = formatter.parse(data);
        return date
    }
    
    static List abertos(){
        AnoLetivo.findAllByDataDeFechamentoGreaterThanEquals( (new Date()).clearTime() )
    }
    
    static AnoLetivo corrente(){
        AnoLetivo.findByDataDeFechamentoGreaterThanEqualsAndDataDeInicioLessThanEquals((new Date()).clearTime() , (new Date()).clearTime())
    }
    
    
    void setSemestre_1(Semestre s){
        if(s){
            s.ano = this
            s.save()
            semestre_1 = s
        }
    }
    
    void setSemestre_2(Semestre s){
        if(s){
            s.ano = this
            s.save()
            semestre_2 = s
        }
    }
}
